package com.example.qrcodecamera;

import android.util.Log;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DbUtils {
    //智能关闭连接（增加重试机制）
    public static void closeQuietly(Connection conn) {
        if (conn != null) {
            try {
                if (!conn.isClosed()) {
                    for (int i = 1; i <= 3; i++) { // 最大重试3次
                        try {
                            conn.close();
                            break;
                        } catch (SQLException e) {
                            if (i == 3) Log.e("DB_CLOSE", "最终关闭失败", e);
                        }
                    }
                }
            } catch (SQLException e) {
                Log.e("DB_CLOSE", "状态检查异常", e);
            }
        }
    }

    // 批量关闭方法（增强容错）
    public static void closeResources(Connection c, Statement s, ResultSet r) {
        closeWithRetry(r, 2);  // 结果集重试2次
        closeWithRetry(s, 2);  // 语句重试2次
        closeWithRetry(c, 3);  // 连接重试3次
    }

    private static void closeWithRetry(AutoCloseable res, int maxRetry) {
        if (res != null) {
            for (int i = 1; i <= maxRetry; i++) {
                try {
                    res.close();
                    break;
                } catch (Exception e) {
                    if (i == maxRetry) {
                        Log.w("DB_CLOSE", "关闭重试失败", e);
                    }
                }
            }
        }
    }



}




